package top.infopub.job.fia.dao;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import top.infopub.generic.GenericDao;
import top.infopub.job.fia.domain.FundsPlanSumDomain;
import top.infopub.model.fia.FundsPlan;
import top.infopub.model.fia.FundsPlanSummary;
import top.infopub.model.fia.FundsPlanTask;

import java.util.List;
import java.util.Map;

/** 月度资金计划(FIA_FUNDS_PLAN) **/
@Repository
public interface FundsPlanDao extends GenericDao<FundsPlan, String> {
    /**
     * 根据id统计月度资金计划当月数据
     * @param id
     * @return
     */
    List<FundsPlanSumDomain> queryFundsPlanSumById(@Param("id") String id);

    /**
     * 下月和下下月总计金额
     * @param id
     * @return
     */
    FundsPlanSumDomain querySumNextAmtById(@Param("id") String id);

    /**
     * 查询待处理的列表
     * @param status 状态，0=待处理，1=已处理
     * @return
     */
    List<FundsPlanTask> queryFundsPlanTaskList(@Param("status") String status);

    /**
     * 更新月度资金计划任务表状态
     * @param status
     * @param id
     * @return
     */
    int updateFundsPlanTaskStatus(@Param("status") String status, @Param("id") String id);

    /**
     * 新增汇总记录
     * @param map
     * @return
     */
    int insertFundsPlanSummary(Map<String, Object> map);

    /**
     * 更新汇总记录
     * @param map
     * @return
     */
    int updateFundsPlanSummary(Map<String, Object> map);

    /**
     * 根据所属公司和归属年月查询汇总记录
     * @param hrOrgId
     * @param belongDate
     * @return
     */
    FundsPlanSummary queryByOrgIdAndBelongDate(@Param("hrOrgId") String hrOrgId, @Param("belongDate") String belongDate);
}